package com.cn.algorithm02.class02;

import com.cn.algorithm02.class01.CodeUtil;

/***
 * @author: hels
 * @description: 选择排序  O(n^2)  选择排序是找到最小数的下标然后和第1,2,3.。位置交换
 * @date: 2022-9-23 12:05
 **/
public class C01_SelectSort {
    public static void main(String[] args) {
        int[] arr = CodeUtil.generatorArray(7, 10, true);
        selectSort(arr);
        for (int num: arr) {
            System.out.print(num + " ");
        }
    }

    public static void selectSort(int[] arr) {
        // 0- n-1 两两比较找最小数、放0
        // 1- n-1 两两比较找最小数、放1
        for (int i = 0; i < arr.length ; i++) {
            int minIndex = i;
            for (int j = i + 1; j < arr.length; j++) {
                minIndex = arr[minIndex] <= arr[j] ? minIndex : j;
            }
            CodeUtil.swap(arr, i, minIndex);
        }
    }
}
